Webinar Python-ID Jogja

Topik

Topik kita kali ini adalah Bermain Mikrokontroler dengan menggunakan MicroPython.

Pemateri

Pemateri pada topik ini akan dibawakan oleh Ardy Seto Priambodo, S.T., M.Eng.

Poster

Materi Teori

MicroPython

MicroPython is a lean and efficient implementation of the Python 3 programming language that includes a small subset of the Python standard library and is optimised to run on microcontrollers and in constrained environments.

web: https://micropython.org/

doc: http://docs.micropython.org/en/latest/












ESP32

ESP32 is a series of low-cost, low-power system on a chip microcontrollers with integrated Wi-Fi and dual-mode Bluetooth.

web: https://www.espressif.com/en/products/socs/esp32/overview

Salah satu board yang menggunakan ESP32, lolin32 lite:

Praktik

Instalasi MicroPython ke ESP32

Perangkat yang dibutuhkan:

  • python (saya merekomendasikan conda)
  • esptool
  • jupyter
  • ESP32
  • led RGB
  • sensor DHT11

Instalasi Python

sumber: https://docs.conda.io/projects/conda/en/latest/user-guide/install/download.html

saya menggunakan versi minimalis yaitu Miniconda

Instalasi esptool

saya merekomendasikan membuat environment baru dan sekalian menginstall pip pada environment tersebut, untuk conda bisa ketik perintah berikut

> conda create --name micropython

> conda install -c anaconda pip

install jupyter dengan perintah:

> conda install -c anaconda jupyter

install esptool dengan perintah:

> pip install esptool

cek hasil instalasi dengan ketik dan akan muncul versi yang digunakan

> esptool

Flash Firmware MicroPython ke ESP32

download firmware: http://micropython.org/download/esp32/

download bisa dilakukan secara manual dengan klik link atau menggunakan wget dengan perintah:

> wget http://micropython.org/resources/firmware/esp32-idf3-20191220-v1.12.bin

hubungkan ESP32 dengan laptop / komputer via kabel USB dan cek COM yang terdeteksi via device manager

hapus firmware sebelum kita mengupgrade firmware yang lebih baru dengan mengetik:

> esptool.py --chip esp32 erase_flash

kemudian flash firmware yang telah kita download dengan cara ketik (perhatikan COM yang digunakan):

> esptool.py --chip esp32 --port COM9 write_flash -z 0x1000 esp32-idf3-20191220-v1.12.bin

REPL (Read-Eval-Print Loop)

download putty: https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html

jalankan dan isi COM yang digunakan serta baudrate 115200 dan klik open untuk membuka koneksi

setelah dijalankan maka akan muncul shell yang mana merupakan dari micropython yang ada pada ESP32

Jupyter notebook MicroPython Kernel

install kernel pada jupyter notebook dengan mengetik:

> git clone https://github.com/goatchurchprime/jupyter_micropython_kernel.git

> pip install -e jupyter_micropython_kernel

> python -m jupyter_micropython_kernel.install

buka jupyter notebook dengan perintah:

> jupyter notebook

Live Code

Koneksi

In [1]:
# koneksi kernel dari Jupyter MicroPython dengan ESP32
%serialconnect
Connecting to --port=COM9 --baud=115200 
Ready.

Print

In [2]:
# print string
print('Bermain MicroPython dengan Jupyter Notebook')
Bermain MicroPython dengan Jupyter Notebook
In [3]:
# print int
print(1+2+3+4+5+6+7+8+9)
45

In [4]:
# konfigurasi pin yang digunakan untuk LED

from machine import Pin
led = Pin(22, Pin.OUT)
In [5]:
# menyalakan led
led.off()

In [6]:
# mematikan led
led.on()

RGB Led

In [7]:
# konfigurasi pin RGB

blue = Pin(18, Pin.OUT)
green = Pin(19, Pin.OUT)
red = Pin(23, Pin.OUT)
In [8]:
# menyalakan led BLUE
blue.on()
In [9]:
# mematikan led BLUE
blue.off()
In [10]:
# menyalakan led GREEN
green.on()
In [11]:
# mematikan led GREEN
green.off()
In [12]:
# menyalakan led RED
red.on()
In [13]:
# mematikan led RED
red.off()

Sensor DHT11

In [14]:
# konfigurasi sensor DHT11
import dht
sensor = dht.DHT11(Pin(15))
sensor.measure()
In [15]:
# baca temperature
print(str(sensor.temperature()) + '*C')
29*C
In [16]:
# baca kelembaban
print(str(sensor.humidity()) + '%')
73%